import LogManager from '@/utils/LogManager';

/**
 * 根据节点坐标点击
 * @param node 被点击的节点
 * @returns 是否点击成功
 */
export function clickByBounds(node: AutoJs.UiObject | null) {
  if (node === null) {
    LogManager.add(`[clickByBounds] node === null`);
    return false;
  }

  const bounds = node.bounds();
  const clickState = click(bounds.centerX(), bounds.centerY());
  LogManager.add(`[clickByBounds] 成功点击 ${node.text()} `);
  sleep(500);
  return clickState;
}

/**
 * 通过文本Text查找节点 点击
 * @param text 文本内容
 * @param timeout 节点查找超时 时间ms
 * @returns
 */
export function clickByText(_text: string, timeout = 1000) {
  const node = text(_text).findOne(timeout);
  if (!node) {
    LogManager.add(`[clickByText] 没有找到 ${_text} `);
    return false;
  }
  LogManager.add(`[clickByText] 点击 ${_text} `);
  clickByBounds(node);
  return true;
}

/**
 * 通过 Desc 查找节点 点击
 * @param text 文本内容
 * @param timeout 节点查找超时 时间ms
 * @returns
 */
export function clickByDesc(_text: string, timeout = 1000) {
  const node = desc(_text).findOne(timeout);
  if (!node) {
    LogManager.add(`[clickByDesc] 没有找到 ${_text} `);
    return false;
  }
  clickByBounds(node);
  LogManager.add(`[clickByDesc] 点击 ${node.text()} `);
  return true;
}
